package org.potiorb.demo.generated;

import java.util.List;

import org.potiorb.orb.giop.GIOPMessageReply;
import org.potiorb.orb.giop.GIOPMessageRequest;
import org.potiorb.orb.giop.GIOPMessageRequestReflexive;
import org.potiorb.orb.poa.Servant;
import org.potiorb.orb.portable.InvokeHandler;

public abstract class TestePOAReflexive extends Servant implements InvokeHandler, TesteOperationsReflexive{

    static{
            TestePOA.m_opsHash.put ( "simples_hello", new java.lang.Integer(0));
            TestePOA.m_opsHash.put("executeBefore", new java.lang.Integer(1));
            TestePOA.m_opsHash.put("executeAfter", new java.lang.Integer(2));
    }
    
    public  GIOPMessageReply _invoke(GIOPMessageRequestReflexive msg){
          GIOPMessageReply _out = new GIOPMessageReply();
          java.lang.Integer opsIndex = (java.lang.Integer)TestePOA.m_opsHash.get ( msg.getOperation() );

          switch ( opsIndex.intValue() ){
	          case 0:{
	        	  // simples_hello
	        	  java.lang.String _arg0 = msg.getRequest_body().toString();
		          simples_hello(_arg0);
		          break;
	          }case 1:{
	        	 
	        	  String arg0 = msg.getFirstMethod();
	        	  String arg1 = msg.getSecondMethod();
	        	  String arg2 = msg.getObjectReferenceFirst();
	        	  String arg3 = msg.getObjectReferenceSecond();
	        	  List<Object> arg4 = msg.getFirstMethodParams();
	        	  List<Object> arg5 = msg.getSecondMethodParams();
	        	  executeBefore(arg0, arg1, arg2, arg3, arg4, arg5);
	        	  
	          }case 2:{
	        	  //executeAfter
	          }
          }
       return null;
	}

}
